<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinova_API: Kinova Documentation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="kinova_logo-429x148.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinova_API
   &#160;<span id="projectnumber">v5.02.00</span>
   </div>
   <div id="projectbrief">ROS communication with Kinova API</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Kinova Documentation </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="First"></a>
What to do first?</h1>
<ul>
<li>Read the F.A.Q.</li>
<li>Read the Getting started document.</li>
<li>Install the package (Ubuntu).</li>
<li>Take a look on the examples project and run them.</li>
<li>Don't be afraid to use the HTML documentation.</li>
<li><b>You can find a list of all available functions in the file <a class="el" href="">Kinova.API.UsbCommandLayerUbuntu.h</a></b></li>
<li><b>You can find a list of all available data structure in the file <a class="el" href="">KinovaTypes.h</a></b></li>
</ul>
<h1><a class="anchor" id="FAQ"></a>
F.A.Q.</h1>
<h2><a class="anchor" id="TorqueControl"></a>
Where is the torque control documentation?</h2>
<p><a href="TorqueDocumentationGeneral.html">Here !</a></p>
<h2><a class="anchor" id="NeededFileU"></a>
What are the files that we need to use this API under Ubuntu</h2>
<ul>
<li>
Kinova.API.UsbCommandLayerUbuntu.h </li>
<li>
Kinova.API.CommLayerUbuntu.h </li>
<li>
KinovaTypes.h </li>
<li>
Kinova.API.CommLayerUbuntu.so </li>
<li>
Kinova.API.UsbCommandLayerUbuntu.so </li>
</ul>
<h2><a class="anchor" id="NeededFileW"></a>
What are the files that we need to use this API under Windows</h2>
<ul>
<li>
Kinova.API.UsbCommandLayer.h </li>
<li>
Kinova.API.CommLayer.h </li>
<li>
KinovaTypes.h </li>
<li>
Kinova.API.CommLayer.dll </li>
<li>
Kinova.API.UsbCommandLayer.dll </li>
</ul>
<h2><a class="anchor" id="ExampleLocation"></a>
Where can I find all the examples?</h2>
<p>All examples are on the software package at this location: from the package's root, they are in the folder Documentation, sub folder API Examples. </p>
<h2><a class="anchor" id="RunExample"></a>
How to run an example?</h2>
<ul>
<li>Make sure you have installed the Ubuntu package and its dependencies.<br />
</li>
<li>Make sure that there is a USB cable connected to the robotical arm's usb port.<br />
</li>
<li>Make sure that the robotical arm is powered on.<br />
</li>
<li>Go in the Debug folder of the example.<br />
</li>
<li>Execute the example: sudo ./NameOFExample<br />
</li>
</ul>
<h2><a class="anchor" id="Error1014"></a>
I got an error code 1014 from the function InitAPI(), what does it means?</h2>
<p>Most of the time, it happens under Ubuntu and that usually means that you don't have the right privileges on the USB device(in our case, the robotical arm). The file should be in /dev/bus/usb/???/???. You can type the command lsusb to know where is the device file. Check for a device with vendor ID 22CD.</p>
<h2><a class="anchor" id="InitRobot"></a>
How to initialise the robotical arm?</h2>
<p>It is done by calling 2 functions: MoveHome and InitFingers. Call them in that order and your robotical arm will be ready to move and grab.</p>
<h2><a class="anchor" id="ReferenceFrame"></a>
What is the reference frame of the robotical arm?</h2>
<p>The Cartesian position and orientation returned by the API's functions are relative to the base reference frame. The origin is at the center and bottom of the base. The Z axis points upward, the X axis points to the left when facing the connectors and the Y axis is toward the connectors (See the DH Parameters document).</p>
<h2><a class="anchor" id="ReferenceFrameDesc"></a>
What is the difference between a frame types FIXED and ROTATING ?</h2>
<p>The fixed frame is the classic robot motion: when you move in translation, the orientation remains constant. The rotating frame is used as default. It's used in rehabilitation to obtain more intuitive motions: when you perform translations, the orientation changes to be more human like.</p>
<h2><a class="anchor" id="EulerConvention"></a>
What Euler convention is used to represents the orientation?</h2>
<p>Convention XYZ</p>
<h2><a class="anchor" id="ControlMode"></a>
How can I control the robotical arm?</h2>
<p>There are 4 mode of control available with the API: Cartesian position control, Cartesian velocity control, angular position control and angular velocity control.</p>
<h2><a class="anchor" id="ForceControl"></a>
How to use the force control?</h2>
<p>Have a look at the example here : <a class="el" href="">StartForceControl</a></p>
<h2><a class="anchor" id="MultiJaco"></a>
Can I communicate with more than one robotic device?</h2>
<p>Absolutely, since the version 5.1.1, this library offers the possibility to communicate with many robotic devices with the same application. Use the fonction GetDevices to get all the devices connected on the USB bus and use the function SetActiveDevice to select the robotic device you want to communicate with. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
